<?
require_once('./application/classes/item/zoeker.class.php');

class zoekerModel extends db implements db_interface{

private static $instance;

public function __construct($iDb){
	
		parent::__construct($iDb);
	
	}
	
public static function getInstance($iDb){
	
		if(self::$instance == NULL){
			self::$instance = new self($iDb);
		}
		
		return self::$instance;
	
	
	}
	public function getZoekerId(item_zoeker $zoeker)
	{

		$query = $this -> db -> prepare('SELECT i.item_id,DATE_FORMAT(i.item_datum, "%H:%i - %d/%m/%y") as date,i.item_title,z.zoeker_beschrijving,z.zoeker_type,b.bew_id,b.bew_titel from item i join zoeker z on(i.item_id = z.zoeker_id)join bewonersgroep b on(i.item_geb_id = b.bew_id) where i.item_id = ? order by i.item_id desc;');
		
		$bindValue = $zoeker -> id;
		
		$query -> bind_param('i', $bindValue);
		$query -> execute();
		
		$query -> bind_result($id,$date,$title,$zoek,$zoeker_type,$bew_id,$naam); 
		
		$query -> fetch();

		
			$zoeker -> title = $title;
			$zoeker -> geb_naam = $naam;
			$zoeker -> zoeker_text = $zoek;
			$zoeker -> geb_id = $bew_id;
			$zoeker -> datum = $date;
			$zoeker -> zoeker_type = $zoeker_type;
		
			
		
	}
	
	
	public function getAantal(){
	
	$query = $this -> db -> query('SELECT COUNT(*) as aantal FROM item WHERE item_deleted = 1 AND item_type = "zoeker"');
	
	$row = $query -> fetch_assoc();
	return $row['aantal'];
	
	}
	
	
	public function getZoekerUser($iUser)
	{
		$query = $this -> db -> prepare('SELECT i.item_id,DATE_FORMAT(i.item_datum, "%H:%i - %d/%m/%y") as date,i.item_title,z.zoeker_beschrijving,z.zoeker_type,b.bew_id,b.bew_titel from item i join zoeker z on(i.item_id = z.zoeker_id)join bewonersgroep b on(i.item_geb_id = b.bew_id) where b.bew_id = ? and i.item_deleted = 1 order by i.item_id desc;');
		
		$bindValue = $iUser -> id;
		
		$query -> bind_param('i', $bindValue);
		$query -> execute();
		
		$query -> bind_result($id,$date,$title,$zoeker,$zoeker_type,$bew_id,$naam); 
		
		$returnArray = array();
		
		while ($query -> fetch())
		{
			$zoeker = new item_zoeker($this -> db);
			$zoeker -> id = $id;
			$zoeker -> title = $title;
			$zoeker -> geb_naam = $naam;
			$zoeker -> zoeker_text = $zoeker;
			$zoeker -> geb_id = $bew_id;
			$zoeker -> datum = $date;
			$zoeker -> zoeker_type = $zoeker_type;
			$returnArray[] = $zoeker;
			
		}
		
		return $returnArray;
		
	}
	public function getAllZoeker($start, $stop)
	{
		$query = $this -> db -> prepare('SELECT i.item_id,DATE_FORMAT(i.item_datum, "%H:%i - %d/%m/%y") as date,i.item_title,z.zoeker_beschrijving,z.zoeker_type,b.bew_id,b.bew_titel from item i join zoeker z on(i.item_id = z.zoeker_id)join bewonersgroep b on(i.item_geb_id = b.bew_id) where i.item_deleted = 1 order by i.item_id desc LIMIT ?,?;');
		
		$query -> bind_param('ii', $start,$stop);
		
		$query -> execute();
		
		$query -> bind_result($id, $date, $title,$beschr,$type,$bew_id,$bew_titel);
		
		$returnArray = array();
		
		
		while ($query -> fetch())
		{
			$zoeker = new item_zoeker($this -> db);
			$zoeker -> id = $id;
			$zoeker -> title = $title;
			$zoeker -> geb_naam = $bew_titel;
			$zoeker -> zoeker_text = $beschr;
			$zoeker -> geb_id = $bew_id;
			$zoeker -> datum = $date;
			$zoeker -> zoeker_type = $type;
			$returnArray[]= $zoeker;
		}
		return $returnArray;
	}
	
	public function addBericht(item_zoeker $zoeker){
		$query = $this -> db -> prepare("CALL zoekerAdd(?,?,?,?,?)");
		$bindingvars=array($zoeker -> zoeker_text , $zoeker -> title , $zoeker -> geb_id , 'zoeker',$zoeker -> zoeker_type);
		$this -> bindVars($query,$bindingvars);
		$query -> execute();
		
	}
	public function delBericht(item_zoeker $zoeker)
	{
		$query = $this -> db -> prepare('call itemDel(?);');
		$bindValue = $zoeker -> id;
		$query -> bind_param('i', $bindValue);
		$query -> execute();
	}
	public function updZoeker(item_zoeker $zoeker)
	{
		$query = $this -> db -> prepare('call zoekerUpd(?,?,?,?);');
		
		$bindingVars = array($zoeker -> title , $zoeker -> zoeker_text , $zoeker -> id, $zoeker -> zoeker_type);
		$this -> bindVars($query,$bindingVars);
		$query -> execute();
		
	}
	public function getTypeZoekers($type){
	
		$query = $this -> db -> prepare('SELECT i.item_id,DATE_FORMAT(i.item_datum, "%H:%i - %d/%m/%y") as date,i.item_title,z.zoeker_beschrijving,z.zoeker_type,b.bew_id,b.bew_titel from item i join zoeker z on(i.item_id = z.zoeker_id)join bewonersgroep b on(i.item_geb_id = b.bew_id) where z.zoeker_type = ? and i.item_deleted = 1 order by i.item_id desc;');
		
		$bindValue = $type;
		
		$query -> bind_param('i', $bindValue);
		$query -> execute();
		
		$query -> bind_result($id,$date,$title,$zoek,$zoeker_type,$bew_id,$naam); 
		
		$returnArray = array();
		
		while ($query -> fetch())
		{
			echo $zoek;
			$zoeker = new item_zoeker($this -> db);
			$zoeker -> id = $id;
			$zoeker -> title = $title;
			$zoeker -> geb_naam = $naam;
			$zoeker -> zoeker_text = $zoek;
			$zoeker -> geb_id = $bew_id;
			$zoeker -> datum = $date;
			$zoeker -> zoeker_type = $zoeker_type;
			$returnArray[] = $zoeker;
			
		}
		
		return $returnArray;
	
	
	}
	
	
	
	public function getTypeZoekersByUser($type, user_bewonersgroep $iUser){
	
		$query = $this -> db -> prepare('SELECT i.item_id,DATE_FORMAT(i.item_datum, "%H:%i - %d/%m/%y") as date,i.item_title,z.zoeker_beschrijving,z.zoeker_type,b.bew_id,b.bew_titel from item i join zoeker z on(i.item_id = z.zoeker_id)join bewonersgroep b on(i.item_geb_id = b.bew_id) where z.zoeker_type = ? and i.item_geb_id = ? and i.item_deleted = 1 order by i.item_id desc;');
		
		$bindValue = $type;
		$bind = $iUser -> id;
		
		$query -> bind_param('ii', $bindValue, $bind);
		$query -> execute();
		
		$query -> bind_result($id,$date,$title,$zoek,$zoeker_type,$bew_id,$naam); 
		
		$returnArray = array();
		
		while ($query -> fetch())
		{
			$zoeker = new item_zoeker($this -> db);
			$zoeker -> id = $id;
			$zoeker -> title = $title;
			$zoeker -> geb_naam = $naam;
			$zoeker -> zoeker_text = $zoek;
			$zoeker -> geb_id = $bew_id;
			$zoeker -> datum = $date;
			$zoeker -> zoeker_type = $zoeker_type;
			$returnArray[] = $zoeker;
			
		}
		
		return $returnArray;
	
	
	}
	
		
		
}



?>